package br.ufrj.dcc.comp2.musica.listeners;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;

import br.ufrj.dcc.comp2.musica.controle.Musica;
import br.ufrj.dcc.comp2.musica.modelo.Administrador;
import br.ufrj.dcc.comp2.musica.vista.PainelPermissoesAdmin;

public class ListenerPainelPermissoes implements ActionListener {

	private PainelPermissoesAdmin painel;
	private HashMap<String, Boolean> permissoes;
	
	public ListenerPainelPermissoes(PainelPermissoesAdmin painel) {
		this.painel = painel;
		permissoes = new HashMap<String, Boolean>();
	}
	
	public void actionPerformed(ActionEvent e) {
		construirPermissoes();
		
		Administrador adm = new Administrador(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getNome(), painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getSobrenome(), painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getCpf(),
				painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getEmail(), painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getTelefoneCelular(), painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getCpf(), painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getCs().encriptar(),
				permissoes);

		adm.setLogradouro(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getLogradouro());
		adm.setBairro(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getBairro());
		adm.setCidade(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getCidade());
		adm.setCep(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getCep());
		adm.setEstado(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getEstado());
		adm.setTelefoneResidencial(painel.getControleCardLayout().getPainelCadastrarPessoa().getOuvintePessoa().getTelefoneResidencial());

		Musica.getInstancia().getCadastrador().cadastrar(adm);

	}
	
	private void construirPermissoes() {
		permissoes.put("cadastrar admin", painel.getCheckCadastrarAdmin().isSelected());
		permissoes.put("cadastrar aluno", painel.getCheckCadastrarAluno().isSelected());
		permissoes.put("cadastrar curso", painel.getCheckCadastrarCurso().isSelected());
		permissoes.put("cadastrar disciplina", painel.getCheckCadastrarDisciplina().isSelected());
		permissoes.put("cadastrar periodo", painel.getCheckCadastrarPeriodo().isSelected());
		permissoes.put("cadastrar professor", painel.getCheckCadastrarProfessor().isSelected());
		permissoes.put("cadastrar turma", painel.getCheckCadastrarTurma().isSelected());
		permissoes.put("editar tabela de pagamentos", painel.getCheckEditarTabelaDePagamentos().isSelected());
		permissoes.put("excluir admin", painel.getCheckExcluirAdmin().isSelected());
		permissoes.put("excluir aluno", painel.getCheckExcluirAluno().isSelected());
		permissoes.put("excluir curso", painel.getCheckExcluirCurso().isSelected());
		permissoes.put("excluir disciplina", painel.getCheckExcluirDisciplina().isSelected());
		permissoes.put("excluir professor", painel.getCheckExcluirProfessor().isSelected());
		permissoes.put("excluir turma", painel.getCheckExcluirTurma().isSelected());
	}

}
